public class MinNumber {
    /**
     * 输入一个非负整数数组，把数组里所有数字拼接起来排成一个数，打印能拼接出的所有数字中最小的一个。
     * @param nums
     * @return
     */
    public String minNumber(int[] nums) {
        for (int i=0;i<nums.length;i++){
            for (int j=i;j<nums.length-i-1;j++){
                if (checkMin(nums[j],nums[j+1] )){
                    int temp = nums[j];
                    nums[j] = nums[j+1];
                    nums[j+1] = temp;
                }
            }
        }
        String ans ="";
        for (int n:nums){
            ans+=String.valueOf(n);
        }

        return ans;


    }

    /**
     * 按照题目规则比较两个数的大小
     * @param a
     * @param b
     * @return
     */
    public boolean checkMin(int a,int b){
        String str1 = String.valueOf(a)+String.valueOf(b);
        String str2 = String.valueOf(b)+String.valueOf(a);
        for (int i=0;i<str1.length();i++){
            if (str1.charAt(i)>str2.charAt(i))
                return true;
            else if (str1.charAt(i)<str2.charAt(i))
                return false;
        }
        return false;
    }
}
